package com.haoniu.module.mapper;

import com.haoniu.common.enums.RedPacketLogEnum;
import com.haoniu.module.domain.database.RedPacketLog;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 红包流水记录 数据层
 * 
 * @author houyijun
 * @date 2019-02-18
 */
public interface RedPacketLogMapper 
{
	/**
     * 查询红包流水记录信息
     * 
     * @param id 红包流水记录ID
     * @return 红包流水记录信息
     */
	public RedPacketLog selectRedPacketLogById(Integer id);
	
	/**
     * 查询红包流水记录列表
     * 
     * @param redPacketLog 红包流水记录信息
     * @return 红包流水记录集合
     */
	public List<RedPacketLog> selectRedPacketLogList(RedPacketLog redPacketLog);
	
	/**
     * 新增红包流水记录
     * 
     * @param redPacketLog 红包流水记录信息
     * @return 结果
     */
	public int insertRedPacketLog(RedPacketLog redPacketLog);
	
	/**
     * 修改红包流水记录
     * 
     * @param redPacketLog 红包流水记录信息
     * @return 结果
     */
	public int updateRedPacketLog(RedPacketLog redPacketLog);
	
	/**
     * 删除红包流水记录
     * 
     * @param id 红包流水记录ID
     * @return 结果
     */
	public int deleteRedPacketLogById(Integer id);
	
	/**
     * 批量删除红包流水记录
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteRedPacketLogByIds(String[] ids);

	/**
	 *   根据红包记录类型统计红包金额
	 * @param type 红包记录类型 {@link RedPacketLogEnum }
	 * @param userId
	 * @return
	 */
    BigDecimal countRedMoneyByType(@Param("type") Integer type,@Param("userId") Integer userId);
}